﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Aplicacion.Base.WinForm;
using BaseDatos.Comun;
using System.Data;
using BaseDatos;

namespace Modulo.Seguridad.Base
{
    public class LBModulo:ColeccionBase
    {
        #region Campos
        public EFModulo Filtros = null;
        #endregion

        #region Constructores
        public LBModulo(EFModulo FiltrosBusqueda)
            : base()
        {
            this.Filtros = FiltrosBusqueda;
        }

        public LBModulo()
            : this(new EFModulo())
        {
        }
        #endregion

        #region Métodos
        public virtual void Buscar()
        {
            try
            {
                ////Crea una matriz
                DbParametro[] Parametros = new DbParametro[1];
                Parametros[0] = new DbParametro("pcodmod", Filtros.Codigo);
                ////Consulta la base de datos y crea un dataset
                DataSet Ds = ConexionBaseDatos.Conexion.CrearDataSet("GETCK_MODULO", Parametros);

                List.Clear();
                if (Ds.Tables[0].Rows.Count > 0)
                {
                    foreach (DataRow registro in Ds.Tables[0].Rows)
                    {
                        EBModulo clase = new EBModulo(registro);
                        List.Add(clase);
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
        public void Nuevo(EBModulo modulo)
        {
            try
            {
                //EBCategoria LeadTime_ = new EBCategoria(TipoRuta_);
                //WFLeadTimeMant Frm = new WFLeadTimeMant(LeadTime_, EModoFormulario.Insertar);
                //if (Frm.ShowDialog() == DialogResult.OK)
                //{
                List.Add(modulo);
                //}
            }
            catch (Exception)
            {
                throw;
            }
        }
        public void Modificar(EBModulo _LeadTime)
        {
            try
            {
                //EBCategoria LeadTime = this[_LeadTime.TipoRuta, _LeadTime.Codigo];
                //if (LeadTime != null)
                //{
                //    WFLeadTimeMant Frm = new WFLeadTimeMant(LeadTime, EModoFormulario.Modificar);
                //    if (Frm.ShowDialog() == DialogResult.OK)
                //    {
                //        //
                //    }
                //}
            }
            catch (Exception)
            {
                throw;
            }
        }

        public void Eliminar(EBModulo _LeadTime)
        {
            try
            {
                //EBCategoria LeadTime = this[_LeadTime.TipoRuta, _LeadTime.Codigo];
                //if (LeadTime != null)
                //{
                //    LeadTime.Eliminar();
                //    List.Remove(LeadTime);
                //}
            }
            catch (Exception)
            {
                throw;
            }
        }
          #endregion

        #region Indizadores

        public EBModulo this[int index]
        {
            get { return (EBModulo)List[index]; }
            set { List[index] = value; }
        }

        //public EBCategoria this[EBTipoRuta Tipo, string Codigo]
        //{
        //    get
        //    {
        //        foreach (EBCategoria leadtime in this)
        //        {
        //            if (leadtime.TipoRuta.Codigo == Tipo.Codigo && leadtime.Codigo == Codigo)
        //            {
        //                return leadtime;
        //            }
        //        }
        //        return null;
        //    }

        //}
        #endregion
    }
}
